The use of mobile handheld devices, particularly, devices with wireless communications capabilities, is becoming increasingly popular with consumers. A wide variety of various types of mobile devices are being manufactured by a large number of consumer electronic device manufacturers. For example, in a typical market like the United States, many millions of mobile handheld devices such as, for example, mobile phones, portable computers (e.g., PDAs, micro laptops, etc.), portable media players, and the like are purchased by consumers each year. As the features offered by these devices continued to increase with respect to their richness and depth of functionality, the overall mobile handheld device market continues to expand. This expanding market offers opportunities to those device manufacturers that are best able to satisfy consumer demand.
Much of the unique functionality provided by a wireless handheld device depends upon its ability to connect with other wireless devices and/or a wireless base station and application servers. Examples include cell phones being able to talk to a cell phone base station (e.g., cell tower, etc.) and access an e-mail server. Another example is the ability of a wireless handheld device to talk to a WiFi hotspot, or other such base station. Application functionality (e.g., weather information, stock quotes, news, etc.) is often provided by a server that communicates with the wireless device via the base station.
The ability to establish a reliable wireless communication link between a wireless handheld device and a server (e.g., a server connected to the Internet, etc.) is typically the most critical factor controlling quality of the user experience. A given application's usability and desirability can be dictated by the speed and reliability of the link between the wireless handheld device and the server.
Unfortunately, there are a number problems with the continued expansion of the market for wireless handheld devices. There are a number of different wireless network carriers that employ a number of different wireless technologies (e.g., CDMA, GSM, etc.). Each of these different network carriers utilize a large number of different types of wireless handheld devices, from a large number of different manufacturers. The different network carriers also used different techniques in different technologies to accommodate the changing transmit received conditions as, for example, the mobile users move around (e.g., walking down the street, driving a car, etc.), changing device locations with respect to each other and with respect to any base station. Consequently, an application developer is confronted with a large number of different technology architectures, network topologies, software interfaces, etc., that must be interfaced with and accommodated in order to achieve a sufficiently fast and reliable link between a given wireless handheld device and a server.
Another problem is the fact that an application developer does not have access to a wide array of wireless mobile handheld devices through a reasonable number of conditions or a reasonable number of APIs. There are a large number of different types of handheld devices. Each of these devices varies widely in terms of their capability. Such capabilities include, for example, the power of the embedded CPU, the amount of included RAM, battery power, the communications hardware included, antenna effectiveness, and the like. Depending upon the degree of capability of a given device, the developer must either custom write communications routines or network layer code (e.g., interrupt service routines, Internet protocol stacks, etc.) for more primitive devices, or merely hook into established APIs (e.g., Brew, J2ME, etc.) for more advanced devices, or some combination of the two for devices that are in between. This causes a large amount of developer coding time simply getting an application through QA and debugging to run on a given model of device. Developers simply do not have the time or the resources to take even a single application through a customized QA and debugging process for all the different types of handheld devices that comprise the market.
Thus, what is required is a standardized method for implementing wireless communications links for wireless mobile handheld devices. What is required is a method that can adapt to the various different technologies used to implement a communications link between a handset and a server to provide a standardized way to communicate regardless of the carrier and regardless of the handset type. What is required is a solution that is transparent to an application developer and presents a standardized, device-independent interface. The present invention provides a novel solution to these requirements.